<?xml version="1.0"?>
<doc>
    <assembly>
        <name>GDALib</name>
    </assembly>
    <members>
        <member name="T:GDALib.DatabaseAccessorEventArgs">
            <summary>
            Represents an object that encapsulates information about an exception or error that occured in the DatabaseAccessor object.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessorEventArgs.Exception">
            <summary>
            The actual exception object that was raised.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessorEventArgs.CommandText">
            <summary>
            The text of the command which raised the exception.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessorEventArgs.Parameters">
            <summary>
            The parameters, if any, of the command which raised the exception.
            </summary>
        </member>
        <member name="T:GDALib.SqlCommandType">
            <summary>
            Represents the type of the cached command.
            </summary>
        </member>
        <member name="F:GDALib.SqlCommandType.Reader">
            <summary>
            The command is of type reader and should return a table.
            </summary>
        </member>
        <member name="F:GDALib.SqlCommandType.Scalar">
            <summary>
            The command is of type scalar and should return the first column of the first row of the result table.
            </summary>
        </member>
        <member name="F:GDALib.SqlCommandType.NonQuery">
            <summary>
            The command is of type non-query and should return the number of affected rows.
            </summary>
        </member>
        <member name="F:GDALib.SqlCommandType.MultiReader">
            <summary>
            The command is of type reader and should return mutliple tables.
            </summary>
        </member>
        <member name="T:GDALib.ErrorEventHandler">
            <summary>
            Represents the handler function that is called when BulkExec or asynchronous non-queries exceptions arise.
            </summary>
            <param name="sender">The object where the exception was raised.</param>
            <param name="e">The object which encapsulates information about the event.</param>
        </member>
        <member name="T:GDALib.LogExceptionFunction">
            <summary>
            Represents the function that is called in order to log error messages on exceptions.
            </summary>
            <param name="message">The text message that describes the exception. This includes the Exception.Message field.</param>
        </member>
        <member name="T:GDALib.DatabaseAccessor">
            <summary>
            Represents a layer on top of ADO.NET which simplifies and allows easier execution of many database operations.
            </summary>
        </member>
        <member name="M:GDALib.DatabaseAccessor.#ctor(System.String,GDALib.LogExceptionFunction,System.Int32)">
            <summary>
            Initializes a new instance of the DatabaseAccessor class.
            </summary>
            <param name="connectionString">The synchronous connection string.</param>
            <param name="LogException">The function that will be called to log exceptions.
            If null is provided DatabaseAccessor will use Console.WriteLine by default.</param>
            <param name="timeout">The maximum amount of time, in seconds, to wait for a command to complete.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.#ctor(System.String,GDALib.LogExceptionFunction)">
            <summary>
            Initializes a new instance of the DatabaseAccessor class. The connection string will use integrated security for authentication.
            </summary>
            <param name="server">The server (data source).</param>
            <param name="LogException">The function that will be called to log exceptions.
            If null is provided DatabaseAccessor will use Console.WriteLine by default.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.#ctor(System.String,System.String,GDALib.LogExceptionFunction)">
            <summary>
            Initializes a new instance of the DatabaseAccessor class. The connection string will use integrated security for authentication.
            </summary>
            <param name="server">The server (data source).</param>
            <param name="database">The database name to connect to.</param>
            <param name="LogException">The function that will be called to log exceptions.
            If null is provided DatabaseAccessor will use Console.WriteLine by default.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.#ctor(System.String,System.String,System.String,System.String,GDALib.LogExceptionFunction)">
            <summary>
            Initializes a new instance of the DatabaseAccessor class. 
            The connection will authenticate using the supplied username and password.
            </summary>
            <param name="server">The server (data source).</param>
            <param name="database">The database name to connect to.</param>
            <param name="user">The username to use for database authentication.</param>
            <param name="pass">The corresponding password for the given username.</param>
            <param name="LogException">The function that will be called to log exceptions.
            If null is provided DatabaseAccessor will use Console.WriteLine by default.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.#ctor(System.String,System.String,System.String,GDALib.LogExceptionFunction)">
            <summary>
            Initializes a new instance of the DatabaseAccessor class. 
            The connection will authenticate using the supplied username and password.
            </summary>
            <param name="server">The server (data source).</param>
            <param name="user">The username to use for database authentication.</param>
            <param name="pass">The corresponding password for the given username.</param>
            <param name="LogException">The function that will be called to log exceptions.
            If null is provided DatabaseAccessor will use Console.WriteLine by default.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.CacheCommand(System.String,System.String,GDALib.SqlCommandType)">
            <summary>
            Caches a reader, non-query or scalar command in order to allow fast execution.
            </summary>
            <param name="identifier">The command's unique identifier.</param>
            <param name="commandTemplate">The command's template. Parameters must be preceded by the '@' symbol. 
            Example: INSERT INTO Sales(SaleId, SaleValue) VALUES(@SaleId, @SaleValue);</param>
            <param name="type">The type of the command. This parameter determines the type of output returned by the ExecuteCachedCommand() function. </param>
            <returns> Returns true or false depending on the succesful caching of the command.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.EmptyCache">
            <summary>
            Empties all commands stored in the cache by closing their connections and disposing them.
            </summary>
        </member>
        <member name="M:GDALib.DatabaseAccessor.GetCachedCommandText(System.String)">
            <summary>
            Gets the text (template) of a cached command.
            </summary>
            <param name="identifier">The unique identifier of the command.</param>
            <returns></returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.DeleteCachedCommand(System.String)">
            <summary>
            Deletes a command from the cache by closing its connection and disposing it.
            </summary>
            <param name="identifier">The unique identifier of the command.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteCachedCommand(System.String,System.Object@,System.Object[])">
            <summary>
            Executes a cached command.
            </summary>
            <param name="identifier">The unique identifier of the command.</param>
            <param name="result">The outputed result object. Its type is of the following: DataTable for reader commands,
             int for non-queries, object for scalars and DataTableCollection for multireaders.</param>
            <param name="values">An object array of variable size representing the values for the command template's parameters. 
            If the number of values and parameters do not match the command won't be executed.</param>
            <returns> Returns true or false depending on the succesful execution of the function. </returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.TestConnection">
            <summary>
            Tests the stored connection string by checking if it's possible to open a connection to the database.
            </summary>
            <returns>Returns true if an open connection was established and false otherwise. </returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteReader(System.String)">
            <summary>
            Executes a reader text command and returns a single DataTable. 
            If the query didn't complete succesfuly the DataTable will be empty.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
            <returns>Returns a DataTable, representing the result of the query.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteMultiReader(System.String)">
            <summary>
            Executes a reader text command and returns a DataTableCollection. 
            If the query didn't complete succesfuly the result will be null.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
            <returns>Returns a DataTableCollection, representing the result tables of the query.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteNonQuery(System.String)">
            <summary>
            Executes a non-query text command and returns the number of rows affected.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
            <returns>Return the number of rows affected.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteNonQueryAsync(System.String)">
            <summary>
            Executes a non-query text command asynchronously.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteScalar(System.String)">
            <summary>
            Executes a reader text command and returns the first column of the first row in the result set.
            If the command didn't complete succesfuly the output is null.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
            <returns>Returns an object, representing the result of the query.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ExecuteScalar``1(System.String)">
            <summary>
            Executes a reader text command and returns the first column of the first row in the result set.
            If the command didn't complete succesfuly the output is null.
            </summary>
            <param name="sqlStatement">The text of the command to be executed.</param>
            <returns>Returns an object, representing the result of the query.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.BeginBulkExecTrans(System.String,System.Data.IsolationLevel,System.Boolean)">
            <summary>
            Begins an asynchronous BulkExec operation wrapped inside a transaction. 
            This should be exclusively used for INSERT, UPDATE or DELETE operations.
            NB: Choosing a wrong isolation level may lock the database for a long time, depending on the number of rows to be processed.
            </summary>
            <param name="commandTemplate">The command's template. Parameters must be preceded by the '@' symbol. 
            Example: INSERT INTO Sales(SaleId, SaleValue) VALUES(@SaleId, @SaleValue);</param>
            <param name="isolationLevel">Specifies the isolation level for the transaction.</param>
            <param name="endOnException">When set to false, BulkExec will continue execution although the
            previous statements might have been rolled back by the SQL engine, depending on the exception severity. If endOnException
            is true, BulkExec stops and explicitly calls rollback when an exception is caught.
            </param>
            <returns>Returns true if the operation was succesfuly started.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.BeginBulkExec(System.String)">
            <summary>
            Begins an asynchronous BulkExec operation wrapped inside a transaction. 
            This should be exclusively used for INSERT, UPDATE or DELETE operations.
            </summary>
            <param name="commandTemplate">The command's template. Parameters must be preceded by the '@' symbol. 
            Example: INSERT INTO Sales(SaleId, SaleValue) VALUES(@SaleId, @SaleValue);</param>
            <returns>Returns true if the operation was succesfuly started.</returns>
        </member>
        <member name="M:GDALib.DatabaseAccessor.EndBulkExec(System.Boolean)">
            <summary>
            Ends the BulkExec operation.
            </summary>
            <param name="forceEnd">The forceEnd parameter determines wheter call will be blocking or not.
            If forceEnd is set to false, the calling thread will wait for BulkExec to finish processing its queue. 
            If forceEnd is set to true, the BulkExec operation ends immediately, unblocking any other thread that was waiting for
            BulkExec to finish.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.EndBulkExec(System.Boolean,System.Int32)">
            <summary>
            Ends the BulkExec operation.
            </summary>
            <param name="forceEnd">The forceEnd parameter determines wheter call will be blocking or not.
            If forceEnd is set to false, the calling thread will wait for BulkExec to finish processing its queue. 
            If forceEnd is set to true, the BulkExec operation ends immediately, unblocking any other thread that was waiting for
            BulkExec to finish.</param>
            <param name="timeout"> The timeout period to wait, in miliseconds, 
            for the join operation to complete between the calling thread and the BulkExec thread.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.WaitForAsyncQueries">
            <summary>
            Causes the calling thread to wait until all asynchronous queries are finished. This does not include BulkExec.
            </summary>
        </member>
        <member name="M:GDALib.DatabaseAccessor.EnqueForBulkExec(System.Object[])">
            <summary>
            Enqueues a set of values to be assigned to the BulkExec command for execution.
            </summary>
            <param name="values">An object array of variable size representing the values for the command template's parameters. 
            If the number of values and parameters do not match the command won't be executed.</param>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ClearConnectionPool">
            <summary>
            Empty the pools for the synchronous and asynchronous connections.
            </summary>
        </member>
        <member name="M:GDALib.DatabaseAccessor.ClearAllConnectionPools">
            <summary>
            Empty the connection pools for every connection, including those not in use by DatabaseAccessor.
            </summary>
        </member>
        <member name="E:GDALib.DatabaseAccessor.BulkExecError">
            <summary>
            Occurs when a BulkExec exception or error arises. 
            </summary>
        </member>
        <member name="E:GDALib.DatabaseAccessor.AsyncExecError">
            <summary>
            Occurs when an exception or error arises during the execution of an asynchronous command.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.LastException">
            <summary>
            Gets the last exception object that might have arrisen in one of the following methods: 
            BeginBulkExec(), ExecuteCachedCommand(), ExecuteNonQuery(), ExecuteReader(), ExecuteScalar.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.ExecQueueSize">
            <summary>
            Gets the size of BulkExec's queue. Returns 0 if BulkExec hasn't begun.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.ActiveAsyncQueries">
            <summary>
            Gets the number of active asynchronous queries.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.Timeout">
            <summary>
            Gets or sets the timeout value, in seconds, for all commands executed by the DatabaseAccessor object.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.CachedCommands">
            <summary>
            Gets a string array containing the identifiers of the cached commands.
            </summary>
        </member>
        <member name="P:GDALib.DatabaseAccessor.ConnectionString">
            <summary>
            Gets or sets the synchronous connection string. The asynchronous connection string is infered from the input.
            NB: Set the connection string only when there's no active BulkExec operation and no asynchronous commands are running.
            </summary>
        </member>
    </members>
</doc>
